home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 68K / Demo / www / huntstats.py < prev    next >
Text File  |  1996-05-20  |  1KB  |  65 lines

  1. # Print statistics after wwwhunt.py has run
  2.  
  3. import dbm
  4. import string
  5. import sys
  6. import wwwlib
  7. import regex
  8.  
  9. done = dbm.open('@done', 'r', 0)
  10.  
  11. addrlist = done.keys()
  12. print 'Found', len(addrlist), 'documents'
  13.  
  14. byhost = {}
  15. for addr in addrlist:
  16.     scheme, host, port, path, search, anchor = \
  17.         wwwlib.parse_addr(addr)
  18.     if not byhost.has_key(host):
  19.         byhost[host] = []
  20.     byhost[host].append(addr)
  21. print 'Found', len(byhost), 'hosts'
  22.  
  23. hosts = byhost.keys()
  24. for i in range(len(hosts)):
  25.     parts = string.splitfields(hosts[i], '.')
  26.     parts.reverse()
  27.     hosts[i] = parts
  28. hosts.sort()
  29.  
  30. for i in range(len(hosts)):
  31.     parts = hosts[i]
  32.     parts.reverse()
  33.     host = string.joinfields(parts, '.')
  34.     hosts[i] = host
  35.  
  36. for host in hosts:
  37.     addrs = byhost[host]
  38.     print host, len(addrs),
  39. ##    if len(addrs) > 2:
  40. ##        print 'e.g.', addrs[0], addrs[-1],
  41. ##    else:
  42. ##        for a in addrs: print a,
  43.     print
  44.  
  45. for host in hosts:
  46.     print
  47.     print '---', host, '---'
  48.     good = 0
  49.     for a in byhost[host]:
  50.         title = done[a]
  51.         if regex.match('^([0-9]+, ', title) > 0:
  52.             print 'Error:', a, title
  53.         else:
  54.             good = good + 1
  55.     print 'Has', good, 'good entries'
  56.  
  57. while 1:
  58.     key = raw_input('Enter host or addr: ')
  59.     if byhost.has_key(key):
  60.         print byhost[key]
  61.     elif done.has_key(key):
  62.         print done[key]
  63.     else:
  64.         print 'Huh?'
  65.